**************************************************************************************
	;Header	frs	File-linken

	IFD	Flag_project
Flag_score	set	1
	ENDC
	IFND	Flag_score
Flag_score	set	0
	ENDC
	IFEQ	Flag_score
Flag_score	set	1
	include	Nutz_project
	ELSEIF
**************************************************************************************
ScoreX	= 128+10+10
ScoreY	= 128+8
ScoreY2	= 128+180

SCR_Gem_GFX	EQU	Score_raw
SCR_Bomb_GFX	EQU	SCR_Gem_GFX+4*32
SCR_Feder_GFX	EQU	SCR_Bomb_GFX+4*32
SCR_NFeder_GFX	EQU	SCR_Feder_GFX+4*32
SCR_Tauch_GFX	EQU	SCR_NFeder_GFX+4*32
SCR_Faust_GFX	EQU	SCR_Tauch_GFX+4*32
SCR_Flash_GFX	EQU	SCR_Faust_GFX+4*32
SCR_NFlash_GFX	EQU	SCR_Flash_GFX+4*32
SCR_0_GFX	EQU	SCR_NFlash_GFX+4*32
SCR_1_GFX	EQU	SCR_0_GFX+2*32
SCR_2_GFX	EQU	SCR_1_GFX+2*32
SCR_3_GFX	EQU	SCR_2_GFX+2*32
SCR_4_GFX	EQU	SCR_3_GFX+2*32
SCR_5_GFX	EQU	SCR_4_GFX+2*32
SCR_6_GFX	EQU	SCR_5_GFX+2*32
SCR_7_GFX	EQU	SCR_6_GFX+2*32
SCR_8_GFX	EQU	SCR_7_GFX+2*32
SCR_9_GFX	EQU	SCR_8_GFX+2*32
SCR_Hit1_GFX	EQU	SCR_9_GFX+2*32
SCR_Hit2_GFX	EQU	SCR_Hit1_GFX+2*32
SCR_Hit3_GFX	EQU	SCR_Hit2_GFX+2*32
SCR_HitL_GFX	EQU	SCR_Hit3_GFX+2*32
SCR_Cont_GFX	EQU	SCR_HitL_GFX+2*32
SCR_Nutz_GFX	EQU	SCR_Cont_GFX+2*32

TIMET_FLASH_B	EQU	3
TIMET_WINGS_B	EQU	2
TIMET_ATTACK_B	EQU	1
TIMET_SWIM_B	EQU	0


Show_Scores:
	;Alle Sprites Anmelden.
	move.w	#ScoreX,d0
	move.w	#ScoreY,d1
	lea	Score_Info1(a6),a0
	moveq	#0,d3
	bsr	Add_Simple_Sigel

	move.w	#ScoreX,d0
	move.w	#ScoreY2,d1
	moveq	#0,d2
	lea	Score_Info2(a6),a0
	moveq	#0,d3
	bsr	Add_Simple_Sigel

	btst.b	#0,Scr_SplitScroll(a6)
	beq.s	.no_black

	move.l	Sig_VRam_Pointer(a6),a4
	move.w	Sig_LinkData(a6),d4
	move.w	#128,d1
	moveq	#7-1,d7
.set:
	move.w	d1,(a4)+
	move.b	#$07,(a4)+
	move.b	d4,(a4)+
	move.w	#$e000+(Water_BlackVRam/32),(a4)+
	move.w	#128,(a4)+

	addq.w	#1,d4

	add.w	#32,d1
	dbf	d7,.set

	move.w	d4,Sig_LinkData(a6)
	move.l	a4,Sig_VRam_Pointer(a6)
.no_black:


;------ LebensAnzahl eintragen -----------------------
	;Anzeigen der gesamt-Anzahl aktiver Bobs.

	IFNE	BobAnz
		lea	Bob_Structure(a6),a0
		moveq	#0,d0
		move.w	#BOB_MAXIMUM-1,d7
.count_loop:
		tst.b	Bob_Used(a0)
		bmi.s	.dont_count
		addq.w	#1,d0
.dont_count:
		lea	BOB_ENTRY_LENGTH(a0),a0
		dbf	d7,.count_loop
		divu	#10,d0
		asl.b	#4,d0
		move.b	d0,d1
		swap	d0
		add.b	d0,d1
		move.b	d1,SCR_Lifes_Soll(a6)
		move.b	d1,d0
	ENDC

	move.b	SCR_Lifes_Soll(a6),d0
	cmp.b	SCR_Lifes_Ist(a6),d0
	beq.s	.no_lifes
	move.b	d0,SCR_Lifes_Ist(a6)

	lea	Score_VRam1+32*9,a1
	bsr	Score_Draw_Number

.no_lifes:
;------ GemAnzahl eintragen -----------------------

	move.b	SCR_Gems_Soll(a6),d0
	cmp.b	SCR_Gems_Ist(a6),d0
	beq.s	.no_gems
	move.b	d0,SCR_Gems_Ist(a6)

	lea	Score_VRam3+32*4,a1
	bsr	Score_Draw_Number
.no_gems:
;------ BombAnzahl eintragen -----------------------

	move.b	SCR_Bombs_Soll(a6),d0
	cmp.b	SCR_Bombs_Ist(a6),d0
	beq.s	.no_bombs
	move.b	d0,SCR_Bombs_Ist(a6)
	lea	Score_VRam4+32*4,a1
	bsr	Score_Draw_Number
.no_bombs:
;------ HitPoints eintragen --------------------------

	move.b	TEMET_ANZ_HitPoints(a6),SCR_HitPoint_Soll(a6)
	move.b	SCR_HitPoint_Ist(a6),d0
	cmp.b	SCR_HitPoint_Soll(a6),d0
	beq.s	.no_hitpoint
	bgt.s	.sub_hitpoint

	;Einen HitPoint zufgen.

	moveq	#0,d0
	move.b	SCR_HitPoint_Ist(a6),d0
	asl.w	#2,d0
	lea	HitPointInfoTable(pc),a0
	lea	(a0,d0.w),a0

	lea	0.w,a1
	move.w	(a0)+,a1
	move.w	(a0),d0
	lea	SCR_Hit1_GFX,a0
	lea	(a0,d0.w),a0
	move.w	#32*2,d0
	bsr	AddDMA

	addq.b	#1,SCR_HitPoint_Ist(a6)
	bra.s	.no_hitpoint

.sub_hitpoint:
	;Einen HitPoint entfernen.
	subq.b	#1,SCR_HitPoint_Ist(a6)

	moveq	#0,d0
	move.b	SCR_HitPoint_Ist(a6),d0
	asl.w	#2,d0
	lea	HitPointInfoTable(pc),a0
	lea	(a0,d0.w),a0

	lea	0.w,a1
	move.w	(a0)+,a1
	lea	SCR_HitL_GFX,a0
	move.w	#32*2,d0
	bsr	AddDMA

.no_hitpoint:

	btst	#TIMET_FLASH_B,Message_Fhigkeiten+Message_Struktur
	beq.s	.no_flash

	subq.b	#1,SCR_Flash_verz(a6)
	bpl.s	.no_anim
	move.b	#40,SCR_Flash_verz(a6)
	st	SCR_Flash_Ist(a6)		;Auf jeden Fall anzeigen!
	eor.b	#1,SCR_Flash_show(a6)
	beq.s	.no_anim

	lea	SCR_Flash_GFX,a0
	lea	Score_VRam7,a1
	move.w	#32*4,d0
	bsr	AddDMA

.no_anim:
	tst.b	SCR_Flash_show(a6)
	bne.s	.no_flash

	move.b	SCR_Flash_Soll(a6),d0
	cmp.b	SCR_Flash_Ist(a6),d0
	beq.s	.no_flash
	move.b	d0,SCR_Flash_Ist(a6)
	beq.s	.show_no_flash

	lea	Score_VRam7,a1
	bsr	Score_Draw_Number
	bra.s	.no_flash
.show_no_flash:
	lea	SCR_NFlash_GFX,a0
	lea	Score_VRam7,a1
	move.w	#32*4,d0
	bsr	AddDMA

.no_flash:

	rts

AddGems:
	cmp.b	#$99,SCR_Gems_Soll(a6)
	beq.s	.no_add
	move.b	SCR_Gems_Soll(a6),d1
	move.w	#0,ccr
	abcd	d0,d1
	move.b	d1,SCR_Gems_Soll(a6)
.no_add:
	rts

AddLifes:
	cmp.b	#$99,SCR_Lifes_Soll(a6)
	beq.s	.no_add
	move.b	SCR_Lifes_Soll(a6),d1
	move.w	#0,ccr
	abcd	d0,d1
	move.b	d1,SCR_Lifes_Soll(a6)
.no_add:
	rts

AddBombs:
	cmp.b	#$99,SCR_Bombs_Soll(a6)
	beq.s	.no_add
	move.b	SCR_Bombs_Soll(a6),d1
	move.w	#0,ccr
	abcd	d0,d1
	move.b	d1,SCR_Bombs_Soll(a6)
.no_add:
	rts

Set_Flashes:
	moveq	#0,d0
	move.b	Flash+1(a6),d0
	divu	#10,d0
	move.b	d0,d1
	and.b	#15,d1
	asl.b	#4,d1
	swap	d0
	and.b	#15,d0
	or.b	d0,d1
	move.b	d1,SCR_Flash_Soll(a6)
	rts

HitPointInfoTable:
	dc.w	Score_VRam2
	dc.w	SCR_Hit1_GFX-SCR_Hit1_GFX

	dc.w	Score_VRam2+32*2
	dc.w	SCR_Hit2_GFX-SCR_Hit1_GFX

	dc.w	Score_VRam2+32*4
	dc.w	SCR_Hit2_GFX-SCR_Hit1_GFX

	dc.w	Score_VRam2+32*6
	dc.w	SCR_Hit2_GFX-SCR_Hit1_GFX

	dc.w	Score_VRam2+32*8
	dc.w	SCR_Hit3_GFX-SCR_Hit1_GFX

	dc.w	Score_VRam2+32*10
	dc.w	SCR_Hit3_GFX-SCR_Hit1_GFX

	dc.w	Score_VRam2+32*12
	dc.w	SCR_Hit3_GFX-SCR_Hit1_GFX

	dc.w	Score_VRam2+32*14
	dc.w	SCR_Hit3_GFX-SCR_Hit1_GFX

Init_Scores:
	clr.b	SCR_Lifes_Ist(a6)
	clr.b	SCR_Gems_Ist(a6)
	clr.b	SCR_Bombs_Ist(a6)
	clr.b	SCR_Flash_Ist(a6)
	clr.b	SCR_Flash_show(a6)

	clr.b	SCR_Flash_verz(a6)

	lea	Score_Info1(a6),a1
	lea	Score_Obj_0(pc),a0
	move.w	#14-1,d7
.copy_infos:
	move.w	(a0)+,(a1)+
	dbf	d7,.copy_infos

	lea	Score_Info2(a6),a3

	lea	Score_Obj_1(pc),a0
	move.w	#7-1,d7
.copy_infos2:
	move.w	(a0)+,(a3)+
	dbf	d7,.copy_infos2

	lea	SCR_Nutz_GFX,a0
	lea	Score_VRam1,a1
	move.w	#32*9,d0
	bsr	AddDMA

	lea	Score_VRam1+32*9,a1
	moveq	#$00,d0
	bsr	Score_Draw_Number

	lea	SCR_Gem_GFX,a0
	lea	Score_VRam3,a1
	move.w	#32*4,d0
	bsr	AddDMA

	lea	Score_VRam3+32*4,a1
	moveq	#$00,d0
	bsr	Score_Draw_Number

	lea	SCR_Bomb_GFX,a0
	lea	Score_VRam4,a1
	move.w	#32*4,d0
	bsr	AddDMA

	lea	Score_VRam4+32*4,a1
	moveq	#$00,d0
	bsr	Score_Draw_Number

	lea	Score_Fhigkeiten(pc),a4
	btst	#TIMET_WINGS_B,Message_Fhigkeiten+Message_Struktur
	beq.s	.no_wings

	lea	SCR_Feder_GFX,a0
	lea	Score_VRam5,a1
	move.w	#32*4,d0
	bsr	AddDMA

	bsr	.copy_sigel
.no_wings:
	addq.l	#6,a4

	btst	#TIMET_SWIM_B,Message_Fhigkeiten+Message_Struktur
	beq.s	.no_swim

	lea	SCR_Tauch_GFX,a0
	lea	Score_VRam6,a1
	move.w	#32*4,d0
	bsr	AddDMA

	bsr	.copy_sigel
.no_swim:
	addq.l	#6,a4

	btst	#TIMET_FLASH_B,Message_Fhigkeiten+Message_Struktur
	beq.s	.no_flash

	lea	SCR_Flash_GFX,a0
	lea	Score_VRam7,a1
	move.w	#32*4,d0
	bsr	AddDMA

	bsr	.copy_sigel
.no_flash:
	addq.l	#6,a4

	btst	#TIMET_ATTACK_B,Message_Fhigkeiten+Message_Struktur
	beq.s	.no_attack

	lea	SCR_Faust_GFX,a0
	lea	Score_VRam8,a1
	move.w	#32*4,d0
	bsr	AddDMA

	bsr	.copy_sigel
.no_attack:
	move.w	#-1,(a3)

	;HitPoints initialisieren

	lea	SCR_HitL_GFX,a0			;Leere Taschen aufbauen!
	lea	Score_VRam2,a1
	move.w	#32*2,d0
	moveq	#7,d7
.loop:
	movem.l	a0/a1/d0/d7,-(sp)
	bsr	AddDMA
	movem.l	(sp)+,a0/a1/d0/d7
	lea	64(a1),a1
	dbf	d7,.loop

	clr.b	SCR_HitPoint_Ist(a6)		;Null Hitpoints eingetragen.

	moveq	#0,d0
	move.b	TEMET_MAX_HitPoints(a6),d0
	subq.w	#4,d0
	add.w	d0,d0

	lea	Score_Info1(a6),a3		;Richtige Gre als Objekt eintragen.
	lea	Taschen_Table(pc),a0
	move.w	(a0,d0.w),10*2(a3)

	bsr	Set_Flashes

	rts

.copy_sigel:
	move.l	(a4),(a3)+
	move.w	4(a4),(a3)+
	rts

Taschen_Table:	dc.w	-1,$0100,$0500,$0900,$0d00


Score_Draw_Number:
	move.b	d0,d1
	movem.l	d1/a1,-(sp)
	and.w	#$0f0,d0
	asl.w	#2,d0
	lea	SCR_0_GFX,a0
	lea	(a0,d0.w),a0
	move.w	#32*2,d0
	bsr	AddDMA
	movem.l	(sp)+,d1/a1
	lea	64(a1),a1
	and.w	#$000f,d1
	asl.w	#6,d1
	lea	SCR_0_GFX,a0
	lea	(a0,d1.w),a0
	move.w	#32*2,d0
	bsr	AddDMA
	rts


Score_Obj_0:
	dc.w	$8000

	dc.w	$0500
	dc.w	Score_VRam1/32+$6009
	dc.b	30
	dc.b	0

	dc.w	$0a00
	dc.w	Score_VRam1/32+$4000
	dc.b	0
	dc.b	-4

	dc.w	$0d00
	dc.w	Score_VRam2/32+$6000
	dc.b	0
	dc.b	25

	dc.w	$0d00
	dc.w	Score_VRam2/32+$6008
	dc.b	32
	dc.b	25

	dc.w	-1

Score_Obj_1:
	dc.w	$e000

	dc.w	$0d00
	dc.w	Score_VRam3/32+$0000
	dc.b	0
	dc.b	0

	dc.w	$0d00
	dc.w	Score_VRam4/32+$0000
	dc.b	42
	dc.b	0

Score_Fhigkeiten:
	dc.w	$0500
	dc.w	Score_VRam5/32+$0000
	dc.b	0
	dc.b	20

	dc.w	$0500
	dc.w	Score_VRam6/32+$0000
	dc.b	20
	dc.b	20

	dc.w	$0500
	dc.w	Score_VRam7/32+$0000
	dc.b	40
	dc.b	20

	dc.w	$0500
	dc.w	Score_VRam8/32+$0000
	dc.b	60
	dc.b	20

	ENDC
